[IA64] Add several missing is_running_on_xen().
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 31 May 2006 17:30:07 +0000 (11:30 -0600)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 31 May 2006 17:30:07 +0000 (11:30 -0600)
Signed-off-by Kevin Tian <kevin.tian@intel.com>

linux-2.6-xen-sparse/arch/ia64/kernel/iosapic.c
linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c
linux-2.6-xen-sparse/arch/ia64/kernel/setup.c

index be09b856e3e62a1b920620cc4e69848ab77a5855..549aec51783d80683c7a5f8d33deea381678b01f 100644 (file)
@@ -670,7 +670,11 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
        iosapic_intr_info[vector].dmode    = delivery;
        iosapic_intr_info[vector].trigger  = trigger;
 
-#ifndef CONFIG_XEN
+#ifdef CONFIG_XEN
+       if (is_running_on_xen())
+               return 0;
+#endif
+
        if (trigger == IOSAPIC_EDGE)
                irq_type = &irq_type_iosapic_edge;
        else
@@ -683,7 +687,6 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
                               __FUNCTION__, vector, idesc->handler->typename, irq_type->typename);
                idesc->handler = irq_type;
        }
-#endif
        return 0;
 }
 
index a5545035320f1bf98ef7305da28af14146ad8094..8aa7030b4da10857d27ecf5ea966d1f5eef2ba9d 100644 (file)
@@ -254,7 +254,8 @@ static int xen_slab_ready = 0;
  * it ends up to issue several memory accesses upon percpu data and
  * thus adds unnecessary traffic to other paths.
  */
-irqreturn_t handle_reschedule(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t
+handle_reschedule(int irq, void *dev_id, struct pt_regs *regs)
 {
 
        return IRQ_HANDLED;
@@ -328,7 +329,7 @@ xen_register_percpu_irq (unsigned int irq, struct irqaction *action, int save)
        }
 }
 
-void
+static void
 xen_bind_early_percpu_irq (void)
 {
        int i;
@@ -398,19 +399,20 @@ init_IRQ (void)
 {
 #ifdef CONFIG_XEN
        /* Maybe put into platform_irq_init later */
-       struct callback_register event = {
-               .type = CALLBACKTYPE_event,
-               .address = (unsigned long)&xen_event_callback,
-       };
-       xen_init_IRQ();
-       BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event));
-       late_time_init = xen_bind_early_percpu_irq;
+       if (is_running_on_xen()) {
+               struct callback_register event = {
+                       .type = CALLBACKTYPE_event,
+                       .address = (unsigned long)&xen_event_callback,
+               };
+               xen_init_IRQ();
+               BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event));
+               late_time_init = xen_bind_early_percpu_irq;
 #ifdef CONFIG_SMP
-       register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction);
-#endif
-#else /* CONFIG_XEN */
-       register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL);
+               register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction);
+#endif /* CONFIG_SMP */
+       }
 #endif /* CONFIG_XEN */
+       register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL);
 #ifdef CONFIG_SMP
        register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction);
 #endif
index 16ea104873ae64e8c9067f35b2a658eb61948908..77325e2d1ef89b299ac240d505d5f73edaaefca1 100644 (file)
@@ -925,7 +925,8 @@ cpu_init (void)
        platform_cpu_init();
 #ifdef CONFIG_XEN
        /* Need to be moved into platform_cpu_init later */
-       xen_smp_intr_init();
+       if (is_running_on_xen())
+               xen_smp_intr_init();
 #endif
        pm_idle = default_idle;
 }